home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld: Photoshop 5 Bible Book Companion
/
Ph5 Bible.mdf
/
pc
/
PC MacLAN
/
PC MacLAN for NT
/
PMAC_40a.exe
/
PROTOCOL
/
OEMSETUP.INF
< prev
next >
Wrap
INI File
|
1997-12-19
|
36KB
|
1,010 lines
; /////////////////////////////////////////////////////////////
; // Installer script for Miramar Systems AppleTalk Transport
; // for Windows NT
; //
; // Installs atalk.sys, atalk32.dll, atutil32.dll, atrsrc32.dll
; //
; /////////////////////////////////////////////////////////////
; /////////////////////////////////////////////////////////////
; // Tell the control panel what type of thing we are
; /////////////////////////////////////////////////////////////
[Identification]
OptionType = NetTransport
;-----------------------------------------------------------------------------------------
; //////////////////////////////////////////////////////////////////////////////
; // List of Abstract Names for which services we can install, actual name
; // strings come from the appropriate language section
; //////////////////////////////////////////////////////////////////////////////
[Options]
MiramarAppleTalk
;-----------------------------------------------------------------------------------------
; /////////////////////////////////////////////////////////////
; Lists the disks in the installation set
; /////////////////////////////////////////////////////////////
[Source Media Descriptions]
1 = "DISK1", TAGFILE = atcpanel.exe
2 = "DISK2", TAGFILE = atalk.sys
;-----------------------------------------------------------------------------------------
; /////////////////////////////////////////////////////////////
; // Constants used by this INF file for operations
; /////////////////////////////////////////////////////////////
[FileConstants]
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
NetEventDLL = "%SystemRoot%\System32\netevent.dll"
IoLogMsgDLL = "%SystemRoot%\System32\IoLogMsg.dll"
NetMsgDLL = "%SystemRoot%\System32\NetMsg.dll"
Kernel32DLL = "%SystemRoot%\System32\Kernel32.dll"
SoftwareType = "service"
Exit_Code = 0
NewInfFileName = "ATTrans.inf"
OurProgramGroup = "PCMACLAN"
; /////////////////////////////////////////////////////////////
; // The following names are what make registry key/value names
; //
; // They cannot be language specific, for the programs may
; // refer to them
; /////////////////////////////////////////////////////////////
SoftwareTypeTransport = "transport"
Manufacturer = "Miramar Systems, Inc."
OurSoftwareEntry = $(REG_H_Local)"\"$(Manufacturer)
TheSkunks = "Microsoft"
ProductMajorVersion = "6"
ProductMinorVersion = "5"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
TransportInfOption = "MiramarAppleTalk"
ATalkTransportProductName = "atalk"
ATalkTransportServiceName = "atalk"
ATalkTransportImagePath = "%SystemRoot%\System32\drivers\atalk.sys"
ATalkTransportDriverType = $(ATalkTransportProductName)" atalkTransport"
ATalkTransportDriverClass = {"atalkTransport basic"}
ATalkTransportUse = "transport none none"
ATalkTransportBindForm = """atalk"" yes yes simple"
ATalkTransportBindable = {"atalkTransport ndisDriver non non 100"}
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(Product$(Option)Name)"\CurrentVersion"
SkunkHouse = $(!NTN_SoftwareBase)"\"$(TheSkunks)"\"$(Product$(Option)Name)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(Product$(Option)Name)"\Parameters"
;-----------------------------------------------------------------------------------------
[GeneralConstants]
from = ""
to = ""
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
SERVICE_NO_CHANGE = 4294967295
RegistryErrorIndex = NO_ERROR
KeyProduct = ""
KeyParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
OldVersionExisted = $(FALSE)
DriverPath = $(!STF_NTPATH)"\drivers"
;-----------------------------------------------------------------------------------------
; /////////////////////////////////////////////////////////////
; // This section provides abstract IDs for the Human Languages
; // we support
; /////////////////////////////////////////////////////////////
[LanguagesSupported]
ENG
;-----------------------------------------------------------------------------------------
; /////////////////////////////////////////////////////////////
; // The following strings are displayed in various dialogs
; /////////////////////////////////////////////////////////////
[DialogConstantsENG]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"
;-----------------------------------------------------------------------------------------
; /////////////////////////////////////////////////////////////
; // This section provides the translated strings for any items
; // which are generally visible to the user in ENGLISH
; //
; // Actually, the should all have "ENG" appended to them,
; // and the referenences in the code should have $(!STF_LANGUAGE)
; // appended to them, but we will get to that later
; /////////////////////////////////////////////////////////////
[OptionsTextENG]
MiramarAppleTalk = "Miramar AppleTalk Protocol"
;-----------------------------------------------------------------------------------------
; /////////////////////////////////////////////////////////////
; // This section provides the translated strings for any items
; // which are generally visible to the user in ENGLISH
; //
; // Actually, the should all have "ENG" appended to them,
; // and the referenences in the code should have $(!STF_LANGUAGE)
; // appended to them, but we will get to that later
; /////////////////////////////////////////////////////////////
[FileConstantsENG]
ProCaption = "Miramar Systems AppleTalk Workstation Setup"
ProCancel = "Cancel"
ProCancelMsg = "Windows NT Networking is not correctly installed. "+
"Are you sure you want to cancel copying files?"
ProCancelCap = "Network Setup Message"
ProText1 = "Copying:"
ProText2 = "To:"
FunctionTitle = "Miramar AppleTalk Workstation Setup"
TransportDisplayName = "Miramar AppleTalk Protocol"
ProductWKSTADescription = "Miramar Systems AppleTalk Services"
ProductWKSTADisplayName = "Miramar AppleTalk Workstation"
ProductWKSTATitle = "Miramar AppleTalk Workstation"
ShellCodeErrorTitle = "Error: "$(FunctionTitle)
ShellCodeErrorText = "Shell Code Error."
UninstallServicesText = "All Miramar AppleTalk Services must be removed prior to removing the AppleTalk Protocol"
UserCancelledInstall = "Installation cancelled by user."
;-----------------------------------------------------------------------------------------
; /////////////////////////////////////////////////////////////
; // This section provides the translated strings for any items
; // which are generally visible to the user in ENGLISH
; //
; // Actually, the should all have "ENG" appended to them,
; // and the referenences in the code should have $(!STF_LANGUAGE)
; // appended to them, but we will get to that later
; /////////////////////////////////////////////////////////////
[DialogConstantsENG]
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"
;-----------------------------------------------------------------------------------------
[FileDependentDlgENG]
;-----------------------------------------------------------------------------------------
[date]
Now = {} ? $(!LIBHANDLE) GetSystemDate
;-----------------------------------------------------------------------------------------
[DetectSystemMemory]
SystemMemory = "" ? $(!LIBHANDLE) GetMemorySize
;-----------------------------------------------------------------------------------------
[Identify]
read-syms Identification
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
;-----------------------------------------------------------------------------------------
[ReturnOptions]
; Initialize variables, null lists
set Status = STATUS_SUCESSFUL
set OptionList = {}
set OptionTextList = {}
; Make a list of Human Languages we support
set LanguageList = ^(LanguagesSupported, 1)
Debug-Output "Language: "$($0)
; Check to see if the requested human language is supported, if not, bail out
Ifcontains(i) $($0) in $(LanguageList)
goto returnoptions
else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
endif
returnoptions = +
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
;-----------------------------------------------------------------------------------------
[InstallOption]
Debug-Output "msatalk.inf: In Install Options"
; Copy the options from the symbol table to something more readable
set Option = $($1)
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
; Check to see if the requested human language is supported, if not, bail out
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
endif
; OK, we speak their language... Read in stuff we will need.
read-syms GeneralConstants
read-syms FileConstants
read-syms DialogConstants$(!STF_LANGUAGE)
set Continue = $(OK)
read-syms FileConstants$(!STF_LANGUAGE)
; Get installation bookkeeping information
detect date
detect DetectSystemMemory
set-title $(FunctionTitle)
set to = Begin
set from = Begin
set CommonStatus = STATUS_SUCCESSFUL
EndWait
;/////////////////////////////////////////////////////////////////////////////////////////
; INSTALLATION OPTION DETERMINATION
; See what the user god wants us to do
;/////////////////////////////////////////////////////////////////////////////////////////
; Determine what type of action we will perform, install, configure, remove, update, bind
; StartLabel is the point for the operation
set DoTransport = FALSE
Begin = +
;------
; Check for removal
Ifstr(i) $(!NTN_InstallMode) == deinstall
set StartLabel = RemoveProduct
;------
; Check for Update
else-Ifstr(i) $(!NTN_InstallMode) == Update
set StartLabel = UpgradeSoftware
;------
; Check for Binding
else-Ifstr(i) $(!NTN_InstallMode) == bind
set StartLabel = InitiateBindings
;------
; Check for Configure
else-Ifstr(i) $(!NTN_InstallMode) == configure
set StartLabel = InitiateConfiguration
;------
; If we got here, our only remaining option is installation or total removal
else-ifstr(i) $(Option) == RmvWrkSta
set StartLabel = RemoveProduct
else
set StartLabel = InitiateInstallation
set OEM_ABANDON_OPTIONS = {}
endif
;------
; Determine which components were specified for the option determined
; above.If workstation installation was chosen, then ALL components shall be
; acted upon
Ifstr(i) $(Option) == MiramarAppleTalk
Set DoTransport = TRUE
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(ATalkTransportServiceName))
Else
Debug-Output "MSATALK.INF: Unrecognized option"
set from = $(fatal)
set to = $(fatal)
Endif
;------
; WE ARE READY, JUMP TO THE SELECTED OPTION
goto $(StartLabel)
;/////////////////////////////////////////////////////////////////////////////////////////
; INSTALLATION OPTION
; It's an Installation, do each selected component
;/////////////////////////////////////////////////////////////////////////////////////////
; if we were not supposed to be installing, HOW did we get here? Ignore...
InitiateInstallation = +
; ////////////////////////////////
; // Install Options Reality Check
; //
; // Make sure that components
; // being installed have required
; // subcomponents...
; ////////////////////////////////
Ifstr(i) $(DoFileSystem) == "TRUE"
set DoTransport = TRUE
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(ATalkTransportServiceName))
Endif
; ////////////////////////////////////////////////////////////////////////////////
; Check Transport Installation
; ////////////////////////////////////////////////////////////////////////////////
Ifstr(i) $(DoTransport) == "TRUE"
ifstr(i) $(DoCopy) == "YES"
; ////////////////////////////
; // Allow abandon of install
; ////////////////////////////
set OEM_ABANDON_ON = TRUE
; ///////////////////////////////////
; // Mark where we are for debugging
; ///////////////////////////////////
Debug-Output "MSATALK.INF: Install Transport."
; ///////////////////////////////////
; // Mark where we are for abandon
; ///////////////////////////////////
Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(ATalkTransportServiceName))
ifstr(i) $(!NTN_InstallMode) != Update
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\"$(Manufacturer)"\InstallParams" $(MAXIMUM_ALLOWED) OurRegHandle
ifstr(i) $(OurRegHandle) != ""
; // source path, if any
GetRegValue $(OurRegHandle) "InstallSourcePath" PathValueList
set TempSrcPath = *($(PathValueList),4)
ifstr(i) $(TempSrcPath) != ""
set SrcDir = $(TempSrcPath)"\protocol\"
endif
CloseRegKey $(OurRegHandle)
endif
LoadLibrary "" $(SrcDir)ATInstNT.dll ATInstNTDLL
LibraryProcedure Result $(ATInstNTDLL) ATIsAdministrator
LibraryProcedure ProgramDirectory $(ATInstNTDLL) ATGetProgramPath "Ignore"
FreeLibrary $(ATInstNTDLL)
ifstr(i) $(Result) != "OK"
goto fatal
endif
ifstr(i) $(ProgramDirectory) == ""
; // Get serial number
RunProgram SerialExitCode "" "" $(SrcDir)"\atcpanel.exe" "S"
ifstr(i) $(SerialExitCode) == "0"
goto fatal
endif
; // Get UserName and Company Name
RunProgram SerialExitCode "" "" $(SrcDir)"\atcpanel.exe" "U"
ifstr(i) $(SerialExitCode) == "0"
goto fatal
endif
; // Get Program Directory
RunProgram SerialExitCode "" "" $(SrcDir)"\atcpanel.exe" "D"
ifstr(i) $(SerialExitCode) == "0"
goto fatal
endif
; // Now load the program directory that was given by the user
LoadLibrary "" $(SrcDir)ATInstNT.dll ATInstNTDLL
LibraryProcedure ProgramDirectory $(ATInstNTDLL) ATGetProgramPath
FreeLibrary $(ATInstNTDLL)
ifstr(i) $(ProgramDirectory) == ""
goto fatal
endif
endif
; // Get Selected Network Adapter
Ifstr(i) $(!NTN_InstallMode) != Update
RunProgram SerialExitCode "" "" $(SrcDir)"\atcpanel.exe" "A"
ifstr(i) $(SerialExitCode) == "0"
goto fatal
endif
endif
; /////////////////////////
; // Perform the Copy
; /////////////////////////
set STF_VITAL = "1"
LoadLibrary "" $(SrcDir)ATInstNT.dll ATInstNTDLL
LibraryProcedure Result $(ATInstNTDLL) ATCopyFiles $(SrcDir) $(ProgramDirectory) "1" "2" "PMinimum,Protocol"
FreeLibrary $(ATInstNTDLL)
ifstr(i) $(Result) != "OK"
goto fatal
endif
; show advertising
StartDetachedProcess Result "" "" $(ProgramDirectory)"\atcpanel.exe" "W"
; /////////////////////////
; // End of Do Copy Section
; /////////////////////////
endif
; ///////////////////////////////////
; // Install the Registry Entries
; ///////////////////////////////////
; Install Transport Stuff via executable
RunProgram SerialExitCode "Please insert setup disk #1" "" $(ProgramDirectory)\atcpanel.exe "E"
Ifstr(i) $(!NTN_InstallMode) != Update
; ///////////////////////////////////
; // HKLM\SOFTWARE\Microsoft
; ///////////////////////////////////
Shell $(UtilityInf), AddSoftwareComponent, $(TheSkunks), +
$(ATalkTransportProductName), +
$(ATalkTransportServiceName), +
$(TransportDisplayName), $(NewInfFileName), +
$(ATalkTransportImagePath), "kernelautostart", "PNP_TDI", {}, "",+
$(NetMsgDLL),"","","", $(ATalkTransportServiceName)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
ShellCodeErrorText = "AppleTalk Transport Key Creation Error"
Debug-Output "MSATALK.INF: ShellCode error"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "MSATALK.INF: Registry error: add software components"
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
CloseRegKey $($R4)
CloseRegKey $($R5)
goto fatalregistry
endif
Set SoftProductKey = $($R1)
Set SoftNetRuleKey = $($R2)
Set SoftServiceKey = $($R3)
Set SoftParameterKey = $($R4)
Set SoftLinkageKey = $($R5)
set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareTypeTransport)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(TransportDisplayName)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(TransportDisplayName)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ATalkTransportServiceName)},+
{Review,$(NoTitle),$(!REG_VT_DWORD),1},+
{OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),135},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "MSATALK.INF: ShellCode error."
ShellCodeErrorText = "AppleTalk Transport Registry Value Error"
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "MSATALK.INF: registry error: add value list."
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftLinkageKey)
CloseRegKey $(SoftParameterKey)
goto fatalregistry
endif
set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(ATalkTransportDriverType)},+
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(ATalkTransportDriverClass)}, +
{use,$(NoTitle),$(!REG_VT_SZ),$(ATalkTransportUse)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(ATalkTransportBindForm)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(ATalkTransportBindable)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(TransportInfOption)}, +
{InfName, $(NoTitle),$(!REG_VT_SZ),$(NewInfFileName)}}
Shell $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
ShellCodeErrorText = "AppleTalk Transport Registry Value 2 Error"
Debug-Output "MSATALK.INF: ShellCode error."
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
CloseRegKey $(SoftProductKey)
CloseRegKey $(SoftNetRuleKey)
CloseRegKey $(SoftServiceKey)
CloseRegKey $(SoftParameterKey)
CloseRegKey $(SoftLinkageKey)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
Debug-Output "MSATALK.INF: Registry error: add value list."
goto fatalregistry
endif
;// delete temporary files created by installation
LoadLibrary "" $(!STF_WINDOWSSYSPATH)"\ATInstNT.dll" ATInstNTDLL
LibraryProcedure Result $(ATInstNTDLL) ATDeleteTempFiles
FreeLibrary $(ATInstNTDLL)
endif
; //////////////////////////////////////
; // HKLM\SOFTWARE\Miramar Systems, Inc.
; //////////////////////////////////////
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE" $(MAXIMUM_ALLOWED) SoftwareRegHandle
CreateRegKey $(SoftwareRegHandle) {$(Manufacturer),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" OurRegHandle
CloseRegKey $(OurRegHandle)
OpenRegKey $(!REG_H_LOCAL) "" $(Manufacturer) $(MAXIMUM_ALLOWED) OurRegHandle
CreateRegKey $(OurRegHandle) {"AppleTalk",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" AppleTalkRegHandle
CreateRegKey $(AppleTalkRegHandle) {"Serial",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" SerialRegHandle
CreateRegKey $(AppleTalkRegHandle) {"Zone",0,GenericClass} "" $(MAXIMUM_ALLOWED) "" ZoneRegHandle
CloseRegKey $(SerialRegHandle)
CloseRegKey $(ZoneRegHandle)
CloseRegKey $(AppleTalkRegHandle)
CloseRegKey $(OurRegHandle)
CloseRegKey $(SoftwareRegHandle)
; //////////////////////////////////////
; // End of Transport Installation
; //////////////////////////////////////
Endif
;/////////////////////////////////////////////////////////////////////////////////////////
; End Of Installation Section
;/////////////////////////////////////////////////////////////////////////////////////////
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\"$(!UG_Filename)
EndWait
goto successful
;-----------------------------------------------------------------------------------------
; CONFIGURATION OPTION
; It's Configuration, do each selected component.
;-----------------------------------------------------------------------------------------
InitiateConfiguration = +
LoadLibrary "" $(!STF_WINDOWSSYSPATH)"\ATInstNT.dll" ATInstNTDLL
LibraryProcedure ProgramDirectory $(ATInstNTDLL) ATGetProgramPath
FreeLibrary $(ATInstNTDLL)
ifstr(i) $(ProgramDirectory) == ""
goto fatal
endif
RunProgram SerialExitCode "" "" $(ProgramDirectory)\atcpanel.exe "P"
goto successful
;-----------------------------------------------------------------------------------------
; BINDINGS OPTION
; It's an binding performance, do each selected component.
;-----------------------------------------------------------------------------------------
InitiateBindings = +
OpenRegKey $(!REG_H_LOCAL) "" "SOFTWARE\"$(Manufacturer)"\InstallParams" $(MAXIMUM_ALLOWED) FileParamReg
LoadLibrary "" $(!STF_WINDOWSSYSPATH)"\ATInstNT.dll" ATInstNTDLL
LibraryProcedure ProgramDirectory $(ATInstNTDLL) ATGetProgramPath
FreeLibrary $(ATInstNTDLL)
ifstr(i) $(ProgramDirectory) == ""
goto fatal
endif
;// Get the selected adapter key
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Services\Vxd\ATALK\Ndi\Params\Adapter" $(MAXIMUM_ALLOWED) AdapterHandle
ifstr(i) $(AdapterHandle) != ""
GetRegValue $(AdapterHandle) "ServiceName" AdapterValueList
CloseRegKey $(AdapterHandle)
set AdapterType = *($(AdapterValueList),4)
ifstr(i) $(AdapterType) != ""
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Services\atalk\Linkage" $(MAXIMUM_ALLOWED) LinkageHandle
ifstr(i) $(LinkageHandle) != ""
SetRegValue $(OurCLSIDKey) {"Bind",$(NoTitle),$(!REG_VT_BIN),""}
SetRegValue $(OurCLSIDKey) {"Export",$(NoTitle),$(!REG_VT_BIN),""}
CloseRegKey $(LinkageHandle)
RunProgram SerialExitCode "" "" $(ProgramDirectory)\atcpanel.exe "X"
else
set Error = "Could not open linkage key for AppleTalk Transport. Cannot properly set bindings for AppleTalk Transport."
goto fatal
endif
else
set Error = "No ServiceName for selected adapter. Cannot properly set bindings for AppleTalk Transport."
goto fatal
endif
else
set Error = "No Selected Adapter. Cannot properly set bindings for AppleTalk Transport."
goto fatal
endif
goto successful
;-----------------------------------------------------------------------------------------
; REMOVAL OPTION
; It's an uninstall, remove each selected component AND any dependent components
;-----------------------------------------------------------------------------------------
RemoveProduct = +
; ////////////////////////////////
; // Remove Options Reality Check
; //
; // Make sure that removal of
; // subcomponents also removes
; // dependent components...
; ////////////////////////////////
Ifstr(i) $(!NTN_InstallMode) != Update
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Services\atfsd" $(MAXIMUM_ALLOWED) FSDKey
ifstr(i) $(FSDKey) != ""
; \\ Print Client is still installed. Abort
CloseRegKey $(FSDKey)
set Error = $(UninstallServicesText)
goto fatal
endif
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Services\Miramar AppleTalk File Server" $(MAXIMUM_ALLOWED) FileServerKey
ifstr(i) $(FileServerKey) != ""
; \\ File Server is still installed. Abort
CloseRegKey $(FileServerKey)
set Error = $(UninstallServicesText)
goto fatal
endif
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Services\Miramar AppleTalk Print Server" $(MAXIMUM_ALLOWED) PrintServerKey
ifstr(i) $(PrintServerKey) != ""
; \\ Print Server is still installed. Abort
CloseRegKey $(PrintServerKey)
set Error = $(UninstallServicesText)
goto fatal
endif
endif
;// Get the program dir path
LoadLibrary "" $(!STF_WINDOWSSYSPATH)"\ATInstNT.dll" ATInstNTDLL
LibraryProcedure ProgramDirectory $(ATInstNTDLL) ATGetProgramPath
FreeLibrary $(ATInstNTDLL)
ifstr(i) $(ProgramDirectory) == ""
goto fatal
endif
ifcontains(i) $(ATalkTransportServiceName) in $(OEM_ABANDON_OPTIONS)
set DoTransport = TRUE
Endif
; ////////////////////////////////
; // Remove Transport
; ////////////////////////////////
ifcontains(i) $(ATalkTransportServiceName) in $(OEM_ABANDON_OPTIONS)
; Remove Transport stuff via executable
RunProgram SerialExitCode "" "" $(ProgramDirectory)\atcpanel.exe "H"
Ifstr(i) $(!NTN_InstallMode) != Update
; Remove the Software\Company Entry
Shell $(UtilityInf), RemoveSoftwareComponent, $(TheSkunks), $(ATalkTransportProductName)
; Remove the Services Entry
Shell $(UtilityInf), RemoveService, $(ATalkTransportServiceName), "YES"
endif
endif
; Remove Files
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\ATUTIL32.DEL"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\ATRSRC32.DEL"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\ATALK32.DEL"
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\ATUTIL32.DEL"
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\ATRSRC32.DEL"
AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\ATALK32.DEL"
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\DRIVERS\ATALK.SYS"
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(!STF_WINDOWSSYSPATH)"\DRIVERS\ATALK.SYS", $(!STF_WINDOWSSYSPATH)"\DRIVERS\ATALK.DEL"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\DRIVERS\ATALK.DEL"
endif
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(ProgramDirectory)"\ATHELP.HLP"
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(ProgramDirectory)"\ATHELP.HLP", $(ProgramDirectory)"\ATHELP.DEL"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(ProgramDirectory)"\ATHELP.DEL"
endif
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(ProgramDirectory)"\README.TXT"
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(ProgramDirectory)"\README.TXT", $(ProgramDirectory)"\README.DEL"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(ProgramDirectory)"\README.DEL"
endif
OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" $(MAXIMUM_ALLOWED) FoldersKey
ifstr(i) $(FoldersKey) != ""
GetRegValue $(FoldersKey) "Common Programs" ShortCutValueList
set ShortCutDirectory = *($(ShortCutValueList),4)
ifstr(i) $(ShortCutDirectory) != ""
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(ShortCutDirectory)"\"$(OurProgramGroup)"\ATCPANEL.RMV"
endif
CloseRegKey $(FoldersKey)
endif
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(ProgramDirectory)"\ATMSG.exe"
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(ProgramDirectory)"\ATMSG.exe", $(ProgramDirectory)"\ATMSG.DEL"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(ProgramDirectory)"\ATMSG.DEL"
endif
; Remove ProgramGroup stuff via executable
RunProgram SerialExitCode "" "" $(ProgramDirectory)\atcpanel.exe "M"
; Get rid of ATCPANEL
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(ProgramDirectory)"\ATCPANEL.exe"
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(ProgramDirectory)"\ATCPANEL.exe", $(ProgramDirectory)"\ATCPANEL.DEL"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(ProgramDirectory)"\Atcpanel.del"
endif
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(ProgramDirectory)"\ATCPanel.hlp"
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(ProgramDirectory)"\ATCPanel.hlp", $(ProgramDirectory)"\ATCPanel.del"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(ProgramDirectory)"\ATCPanel.del"
endif
LoadLibrary "" $(!STF_WINDOWSSYSPATH)"\ATInstNT.dll" ATInstNTDLL
; Remove our directory
LibraryProcedure Result $(ATInstNTDLL) ATRemoveFolder $(ProgramDirectory)
; Remove our remaining keys
LibraryProcedure Result $(ATInstNTDLL) ATCleanRegistry
; Will no longer use install dll
FreeLibrary $(ATInstNTDLL)
; Remove install dlls
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\ATInstNT.dll"
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(!STF_WINDOWSSYSPATH)"\ATInstNT.dll", $(!STF_WINDOWSSYSPATH)"\ATInstNT.del"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\ATInstNT.del"
endif
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\ATInRcNT.dll"
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), RenFile $(!STF_WINDOWSSYSPATH)"\ATInRcNT.dll", $(!STF_WINDOWSSYSPATH)"\ATInRcNT.del"
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\ATInRcNT.del"
endif
; Remove .inf
LibraryProcedure STATUS, $(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(NewInfFileName)
ifstr(i) $(STATUS) == YES
LibraryProcedure STATUS, $(!LIBHANDLE), DelFile $(!STF_WINDOWSSYSPATH)"\"$(NewInfFileName)
endif
endif
; ////////////////////////////////
; // End of Uninstall Section
; ////////////////////////////////
Ifstr(i) $(!NTN_InstallMode) == Update
goto InitiateInstallation
endif
goto end
;-----------------------------------------------------------------------------------------
; UPGRADE OPTION
; It's an upgrade, do each selected component.
;-----------------------------------------------------------------------------------------
UpgradeSoftware = +
goto RemoveProduct
Exit
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
successful = +
goto end
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
warning = +
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(to)
else-ifstr(i) $($R1) == "CANCEL"
goto $(from)
else
goto end
endif
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
nonfatalinfo = +
Set CommonStatus = STATUS_USERCANCEL
Set Severity = STATUS
goto nonfatalmsg
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
nonfatal = +
Debug-Output "msatalk.inf: non fatal msg."
Set Severity = NONFATAL
goto nonfatalmsg
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
nonfatalmsg = +
ifstr(i) $(Error) == ""
Set Severity = NONFATAL
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(from)
else
goto "end"
endif
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
fatalregistry = +
Debug-Output "msatalk.inf: Fatal registry."
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
fatal = +
Debug-Output "msatalk.inf: In Fatal processing."
ifstr(i) $(Error) == ""
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto setfailed
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
ShellCodeError = +
Debug-Output "msatalk.inf: In shell code error processing."
set DlgType = "MessageBox"
set STF_MB_TITLE = $(ShellCodeErrorTitle)
set STF_MB_TEXT = $(ShellCodeErrorText)
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ui start "Error Message"
goto setfailed
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
setfailed = +
Debug-Output "msatalk.inf: Setting failed."
set CommonStatus = STATUS_FAILED
Ifint $(RegistryErrorIndex) == CANT_REMOVE_WKSTA_NTAS
set CommonStatus = STATUS_USERCANCEL
endif
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto RemoveProduct
endif
goto end
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
end = +
goto term
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
term = +
Return $(CommonStatus)
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
[Signature]
FileType = MICROSOFT_FILE
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
[GetSignature]
read-syms Signature
return $(FileType)
;-----------------------------------------------------------------------------------------
; IDENTIFY Platform (OS and CPU)
;-----------------------------------------------------------------------------------------
[ProductType]
STF_PRODUCT = Winnt
STF_PLATFORM = I386